package cn.bdqn.service.course;

import cn.bdqn.dao.course.CourseCatalogMapper;
import cn.bdqn.pojo.course.CourseCatalog;
import cn.bdqn.vo.course.CourseCatalogVideoVo;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Service
public class CourseCatalogService {
    @Autowired
    private CourseCatalogMapper courseCatalogMapper;

    //根据课程id查询目录信息
    public List<CourseCatalog> selectCourseCatalogByCourseId(Integer courseId){
        return courseCatalogMapper.selectList(new QueryWrapper<CourseCatalog>().eq("course_id",courseId));
    }
    //根据目录id查询目录信息
    public CourseCatalog selectCourseCatalogById(Integer id){return courseCatalogMapper.selectById(id);}
    //获取根据课程id、目录名称、视频名称，获取目录、视频信息
    public List<CourseCatalogVideoVo> selectCourseCatalogVideoVO(Integer courseId,String catalogName,String videoName){
        return courseCatalogMapper.selectCourseCatalogVideoVO(courseId,catalogName,videoName);
    }
    //添加课程目录信息
    public Integer insertCourseCatalog(CourseCatalog courseCatalog){
        return courseCatalogMapper.insert(courseCatalog);
    }
    //根据目录id删除课程目录信息
    public int deleteCourseCatalogById(Integer courseCatalogId){
         return courseCatalogMapper.delete(new QueryWrapper<CourseCatalog>().eq("course_catalog_id", courseCatalogId));
    }

    //根据课程id删除课程目录信息
    public int deleteCourseCatalogByCourseId(Integer courseId){return courseCatalogMapper.delete(new QueryWrapper<CourseCatalog>().eq("course_id",courseId));}

    //根据目录id修改课程目录名称
    public Integer updateCourseCatalogById(CourseCatalog courseCatalog){
        UpdateWrapper<CourseCatalog> course_catalog = new UpdateWrapper<CourseCatalog>().eq("course_catalog_id", courseCatalog.getCourseCatalogId());
        if (null != courseCatalog.getCourseCatalogName()) {
            course_catalog.set("course_catalog_name",courseCatalog.getCourseCatalogName());
        }
        if (null != courseCatalog.getCourseCatalogStatus()) {
            course_catalog.set("course_catalog_status",courseCatalog.getCourseCatalogStatus());
        }
        return courseCatalogMapper.update(null,course_catalog);
    }
    //根据目录id修改目录所属课程id
    public Integer updateCourseIdByCourseCatalogId(Integer courseCatalogId,Integer courseId){
        return courseCatalogMapper.update(null,new UpdateWrapper<CourseCatalog>().eq("course_catalog_id",courseCatalogId).set("course_id",courseId));
    }

    //根据目录id修改目录状态
    public Integer updateCourseCatalogStatusById(Integer catalogId,Integer status){return courseCatalogMapper.update(null,new UpdateWrapper<CourseCatalog>().eq("course_catalog_id",catalogId).set("course_catalog_status",status));}

}
